home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 23.zip / BS1 part 23 / Junior-Prommer v2.07.adf / Junior-Soft_V2 / Junior-Soft.doc < prev    next >
Text File  |  2018-01-15  |  26KB  |  674 lines

  1. =============================================
  2. = JUNIOR-PROMMER AMIGA-Software Version 2.0 =
  3. =============================================
  4.  
  5. Komplettdokumentation
  6. ---------------------
  7.  
  8. Generelle Hinweise:
  9. -Der kürzeren Schreibweise und besseren Lesbarkeit wegen wird
  10. ab dieser Stelle statt JuniorPrommer-Software V2.0 das
  11. Kürzel JPS2 verwendet.
  12. -Alle Zahlenwerte, die vom Programm abgefragt werden (z.B.
  13. bei der Bereich-Programmierung), müssen in hexadezimal (0-9,
  14. a-f) ohne weitere Kennung (führendes '$' oder '0x' bzw. 'h'
  15. am Ende) eingegeben werden; z.B. Bereich-Programmierung
  16. eines 27512 von EPROM-Adresse $15e2 bis $af91 ab
  17. Pufferadresse $1f00: einfach ohne die '$'-Zeichen eingeben,
  18. und ohne Rücksicht auf Groß- oder Kleinschreibung der
  19. Buchstaben. Ungültige Hexadezimal-Zeichen und Zahlenwerte
  20. außerhalb des gültigen Bufferbereichs werden nach Abschluß
  21. aller Eingaben eines Fensters erkannt und zurückgewiesen
  22. ('...adresse fehlerhaft').
  23. -Das Programm bedient sich neben den jeweiligen Klartext-
  24. Meldungen zusätzlich eines akustischen 3-Klang-Signals, um
  25. den Benutzer auf erfolgreiche oder fehlerhafte Aktionen
  26. aufmerksam zu machen. Dies ist insbesondere dafür gedacht,
  27. bei längerem Programmierbetrieb nicht immer den Bildschirm
  28. im Auge behalten zu müssen, um festzustellen, wann und wie
  29. das Programmieren eines Bauteils beendet ist. Folgende
  30. Bezeichnungen werden hier verwendet:
  31. - ein OK-PING ertönt z.B. bei erfolgreichem Programmier- und
  32. Verifizierdurchgang,
  33. - während ein BAD-PING z.B. bei der Programmierung ertönt,
  34. nachdem ein Fehler auftrat.
  35.  
  36. Diese akustischen Warnungen lassen sich im Status-Menü
  37. abschalten.
  38. -Dem häufigen Benutzer ebenfalls die Arbeit erleichtern soll
  39. die Standard-Einstellung, daß nach einem erfolgreichen
  40. Programmiervorgang automatisch das gesamte Bauteil noch
  41. einmal mit dem Bufferinhalt verglichen wird (Auto-Verify).
  42. Auch diese Funktion läßt sich im Status-Menü abschalten.
  43. -Zur optischen Fortschrittskontrolle bei den
  44. Programmierfunktionen wird generell ein Füllstandsbalken am
  45. rechten Fensterrand angezeigt. Damit kann einigermaßen
  46. abgeschätzt werden, wie lange die Programmierung dauert (vom
  47. Typ, Modus, und je nach Programmierfunktion vom Bauteil-
  48. Inhalt abhängig).
  49. Wen der Balken stört, kann ihn im Status-Menü abschalten.
  50. -In dieser Dokumentation steht für den Speicher, in dem die
  51. Daten der Bauteile bearbeitet werden, die Bezeichnung
  52. 'Buffer'. Im Programm kann teilweise noch die Bezeichnung
  53. 'Puffer' stehen, gemeint ist aber das Gleiche.
  54.  
  55.  
  56. Programmstart
  57. Die JPS2 kann vom CLI oder der Workbench des AMIGA gestartet
  58. werden. Vom CLI aus muß lediglich der Programmname
  59. eingegeben werden (das Programm muß sich dazu im aktuellen
  60. Dateiverzeichnis befinden oder in einem der Pfad-
  61. Verzeichnisse, damit das DOS es finden kann - auf der
  62. Original-JuniorPrommer-Diskette müßte das Programm im
  63. Ausgangsverzeichnis (Root) stehen). Wenn Sie sich auf der
  64. Workbench befinden, genügt es, das Disketten-Icon der JPS2-
  65. Diskette anzuklicken und mit einem weiteren Doppelklick auf
  66. das darin befindliche Icon des Hauptprogramms die JPS2 zu
  67. starten.
  68.  
  69. Für die Funktion der JPS2 sind zwei externe Shared-Libraries
  70. nötig, die im libs:-Verzeichnis stehen müssen (was auf der
  71. Originaldiskette natürlich der Fall ist). Dies sind die
  72. arp.library V39.1 und die req.library V2.5. Von letzterer
  73. wird der Filerequester benutzt, siehe dazu auch die Hinweise
  74. in der Programmierer-Dokumentation zu dieser Library oder
  75. die Kurz-Anleitung am Ende dieses Textes (Anhang A).
  76. Komplette Dokumentationen und Programmbeispiele zur
  77. req.library sind auf der Public-Domain AmigaLibDisk 419
  78. (Fish-Disk) zu finden, soweit sie nicht mitgeliefert wurden.
  79.  
  80. Programmtechnisch läuft der Start wie folgt ab:
  81. arp.library öffnen, req.library öffnen, Parallelport
  82. reservieren, timer.device öffnen, input.device öffnen und
  83. eigenen input-handler installieren, audio.device öffnen und
  84. 'PING' vorbereiten, CustomScreen öffnen, Window darauf
  85. öffnen, Speicher für Bauteile-Buffer reservieren (arbeitet
  86. flexibel, es wird zunächst versucht, 1MB zu reservieren für
  87. den größtmöglichen bearbeitbaren Baustein (278001), wenn
  88. dies fehlschlägt wird die Buffergröße immer weiter durch 2
  89. geteilt, bis die Reservierung klappt. Alle Bauteile, die nun
  90. nicht mehr in den Buffer passen würden, werden
  91. ausgeschaltet), Hardware initialisieren und Default-Typ
  92. 27256I einstellen, schließlich das Display aufbauen und
  93. mittels PING signalisieren, daß losgearbeitet werden kann.
  94.  
  95.  
  96. Beschreibung der Menüfunktionen
  97.  
  98. Datei-Menü
  99. Laden
  100. Öffnet das Dateiauswahlfenster der req.library.
  101. Ausgangsverzeichnis ist das aktuelle Verzeichnis,
  102. von dem die JPS2 aus gestartet wurde bzw. von der
  103. Workbench aus das Verzeichnis, in dem sich auch
  104. das JPS2-Icon befindet. Eine Kurzbeschreibung des
  105. Dateiauswahlfensters finden Sie im Anhang A am
  106. Ende dieses Textes.
  107. Die ausgewählte Datei wird in den EPROM-Buffer
  108. geladen; dabei ist es egal, ob die Datei zu lang
  109. oder zu kurz für den gerade eingestellten EPROM-
  110. Typ ist. Der für den aktuellen Typ vorgesehene
  111. Buffer wird vor dem Laden mit 0xFF initialisiert.
  112. Der Cursor springt nach erfolgreichem Laden der
  113. Datei an die absolute Position 0.
  114.  
  115. Anhängen
  116. Wie Laden, nur das die Datei ab der Buffer-Mitte
  117. des eingestellten EPROM-Typs geladen wird und das
  118. der Buffer vorher nicht initialisiert wird. Der
  119. Cursor springt nach erfolgreichem Laden an die
  120. exakte Buffer-Mitte (abhängig vom eingestellten
  121. Bauteiletyp). Die Datei-Länge darf hier die halbe
  122. Buffer-Länge nicht überschreiten.
  123. Diese Funktion kann benutzt werden, um z.B. zwei
  124. 8KByte große Dateien (die sonst in zwei 2764
  125. EPROMs gebrannt werden) nacheinander in den Buffer
  126. zu laden (bei eingestelltem Typ 27128) und dann
  127. dieses größere Bauteil "auf einmal" zu brennen.
  128. Die zweite Möglichkeit wäre, die erste Datei
  129. normal zu laden, das Bauteil normal zu brennen
  130. (die zweite Hälfte bleibt dadurch unberührt), dann
  131. die zweite Datei ebenfalls normal zu laden und
  132. diese mittels der Funktion Bereich-Programmieren
  133. (EPROM-Adressen von Mitte bis Ende des einge-
  134. stellten Typs, im obigen Beispiel 27128 also von
  135. $2000 bis $3fff, und Puffer ab Adresse $0) in die
  136. obere Hälfte des Bauteils zu brennen.
  137.  
  138. Speichern
  139. Ruft das Dateiauswahlfenster auf, und speichert
  140. den gesamten Buffer in der Länge des eingestellten
  141. Bauteiltyps unter einem einzugebenden Namen ab. Es
  142. wird vor dem Abspeichern überprüft, ob das
  143. Speichermedium noch genug Platz für die neue Datei
  144. aufweist. Wenn eine bestehende Datei überschrieben
  145. werden soll, erscheint eine Sicherheitsabfrage.
  146.  
  147. Löschen
  148. Öffnet das Dateiauswahlfenster und löscht die
  149. gewünschte Datei (OHNE eine weitere Sicher-
  150. heitsabfrage ! Also bitte Vorsicht !)
  151.  
  152. Junior-Info
  153. Aus diesem Info-Fenster kann man die Anschrift der
  154. MAXON Computer GmbH und weitere Informationen
  155. erhalten. Dieses Fenster erscheint auch stets,
  156. wenn die JPS2 gestartet wird.
  157.  
  158. Programm-Ende
  159. Nach einer Sicherheitsabfrage kann hier das
  160. Programm verlassen werden. Alle reservierten
  161. Ressourcen (Speicher, Parallel-Port, Libraries
  162. etc.) werden wieder freigegeben.
  163.  
  164.  
  165. Typ-Menü
  166. EPROMS
  167. Folgende Typen werden unterstützt:
  168. 2716 (25V), 2732 (25V), 2732A (21V), 2764 (21V),
  169. 2764A (12.5V), 27128 (21V), 27128A (12.5V), 27256
  170. (21V), 27256I (12.5V), 27512 (12.5V), 27513
  171. (12.5V), 27011 (12.5V).
  172. Wenn Sie nicht sicher sind, welche Einstellung bei
  173. gleichem Typ die Richtige ist (z.B. 27256 oder
  174. 27256I), entscheidet der meist auf dem Bauteil
  175. aufgedruckte Programmierspannungswert (der etwa
  176. wie folgt aussieht: @12.5V -- hier muß also der
  177. 27256I eingestellt werden). Das 'I' beim 27256I
  178. deutet einfach nur auf den Hersteller Intel und
  179. gehört NICHT zur Typbezeichnung auf dem Bauteil.
  180. Zahlenwerte hinter der Typbezeichnung wie etwa
  181. 27C512-25 geben NICHT die Programmierspannung,
  182. sondern die Zugriffszeit (hier 250 ns) des
  183. Bauteils an. Das 'C' in diesem Beispiel besagt,
  184. daß es sich um einen CMOS-Typ handelt (diese
  185. zeichnen sich u.a. durch eine geringere
  186. Stromaufnahme aus). Normalerweise sollte auch das
  187. Programmieren von solchen C-Typen keine
  188. Schwierigkeiten bereiten.
  189.  
  190. MEGA-EPROMS
  191. Folgende MegaBit-EPROMs werden unterstützt:
  192. 271001 (12.5V, baugleich mit 27010), 272001
  193. (12.5V, baugleich mit 27020 (?)), 274001 (12.5V,
  194. baugleich mit 27030 (?)), 278001 (12.5V, baugleich
  195. mit 27040 (?)).
  196. Wird einer dieser Typen angewählt, erscheint der
  197. Hinweis, daß der MEGA-Adapter verwendet werden
  198. muß. Dieser Adapter sollte bei ausgeschaltetem
  199. Rechner installiert werden, um Beschädigungen der
  200. Hardware durch Spannungsschwankungen zu vermeiden.
  201. Der Hebel des Nullkraft-Sockels auf dem Adapter
  202. muß in die gleiche Richtung weisen, wie der des
  203. Basisgerätes, dann ist der Adapter richtigherum
  204. eingebaut (jedenfalls trifft dies bei meinem
  205. Adapter zu). Es sollte NICHT versucht werden, mit
  206. eingebautem Adapter andere Bauteile als die
  207. MegaBit-EPROMs zu bearbeiten.
  208.  
  209. ACHTUNG: die Typen 272001, 274001 und 278001 sind
  210. mit Vorsicht zu genießen, da sie noch nicht
  211. getestet werden konnten. Es dürfte aber keine
  212. Probleme geben.
  213.  
  214. ROMS
  215. Folgende ROMs können mit dieser Software
  216. ausgelesen werden:
  217. 4732, 4764, 47128, 47256.
  218. Alle Funktionen, die normalerweise nur bei
  219. reprogrammierbaren Bauteilen benutzbar sind,
  220. werden ausgeschaltet (z.B. die
  221. Programmierfunktionen).
  222. (Keiner dieser Bauteile stand mir zum Testen zur
  223. Verfügung. Die entsprechenden Routinen sind aus
  224. der 1.10-Version übernommen.)
  225.  
  226. EEPROMS
  227. Folgende Typen können bearbeitet werden:
  228. X2804A, X2816A, X2864A, X28256A.
  229. (Auch diese Typen waren nicht verfügbar. Siehe
  230. Punkt 3)
  231.  
  232. Modus-Menü
  233. Der Programmier-Modus gibt lediglich an, mit welchem
  234. Verfahren das Bauteil programmiert wird. Außer den
  235. Programmier-Funktionen sind also keine weiteren
  236. Routinen von dem hier eingestellten Wert abhängig.
  237. Auto
  238. Der in der Programm-internen Typtabelle
  239. abgespeicherte Wert wird benutzt. Das ist die
  240. sicherste, bei Bauteilen mit größerer Kapazität
  241. aber sicher nicht die schnellste mögliche
  242. Einstellung. Bei Auswahl eines neuen Bauteiletyps
  243. wird als Programmier-Modus immer 'Auto' neu
  244. eingestellt. Im folgenden die Liste der internen
  245. Einstellungen (die laufende Nummer ist
  246. gleichzeitig der interne Listen-Index):
  247. 00) 2716    - 50ms
  248. 01) 2732    - 50ms
  249. 02) 2732A   - 50ms
  250. 03) 2764    - 1ms/4*
  251. 04) 2764A   - 1ms/4*
  252. 05) 27128   - 1ms/4*
  253. 06) 27128A  - 1ms/4*
  254. 07) 27256I  - 1ms/3*
  255. 08) 27256   - 1ms/3*
  256. 09) 27512   - 1ms/3*
  257. 10) 27513   - 1ms/3*
  258. 11) 27011   - 1ms/3*
  259. 12) 271001  - 1ms/3*
  260. 13) 272001  - 1ms/3*
  261. 14) 274001  - 1ms/3*
  262. 15) 278001  - 1ms/3*
  263. 16) 4732    - nicht programmierbar
  264. 17) 4764    -   "         "
  265. 18) 47128   -   "         "
  266. 19) 47256   -   "         "
  267. 20) X2804A  - 10ms, keine Nachprogr., 2 Wiederh.
  268. 21) X2816A  - 50ms
  269. 22) X2864A  - 10ms, keine Nachprogr., 2 Wiederh.
  270. 23) X28256A - 10ms, keine Nachprogr., 2 Wiederh.
  271.  
  272. 50 ms
  273. Jedes Byte wird 50 ms lang programmiert. Keine
  274. Nachprogrammierzeit, maximal 2 Wiederholungen.
  275. Dieser Modus MUSS bei den Typen 2716, 2732 und
  276. 2732A verwendet werden (bei Auto garantiert).
  277.  
  278. 1 ms/4*
  279. Jedes Byte wird 1 Millisekunde lang programmiert
  280. und überprüft, ob es gespeichert worden ist. Dies
  281. wird maximal 15 Mal wiederholt. Anschließend wird
  282. mit der 4-fachen Zeit für dieses Byte
  283. nachprogrammiert. Dies ist die Standardeinstellung
  284. für 2764 bis 27128.
  285.  
  286. 1 ms/3*
  287. Wie zuvor, aber maximal 25 Wiederholungen und nur
  288. die 3-fache Nachprogrammierzeit. Standard für
  289. 27256 bis 278001.
  290.  
  291. 1 ms/1*
  292. Optionaler Modus, maximal 25 Wiederholungen je
  293. Byte und einfache Nachprogrammierung. Für Bauteile
  294. wie 27512 und alle MegaBit-EPROMs zu empfehlen, da
  295. die Programmierzeit erheblich kürzer ist.
  296.  
  297. QUICK
  298. Der schnellste Programmier-Modus. Jedes Byte wird
  299. maximal 50 Mal jeweils 100 Mikrosekunden lang
  300. gebrannt, ohne Nachprogrammierung. Für dieselben
  301. Typen wie bei 1 ms/1* anzuwenden.
  302.  
  303. Sollte sich ein Bauteil mit dem manuell eingestellten
  304. Modus nicht programmieren lassen, wird empfohlen, den
  305. nächstlangsameren Modus zu probieren. Bei Einstellung
  306. 'Auto' ist im Fehlerfall aber anzunehmen, daß das
  307. Bauteil entweder nicht leer oder defekt ist.
  308.  
  309.  
  310. Optionen-Menü
  311. Lesen
  312. Das im Junior-Prommer-Sockel eingesetzte Bauteil
  313. wird in kompletter Länge in den Buffer eingelesen.
  314. Der Buffer wird dadurch unwiderruflich
  315. überschrieben, eventuell gemachte Änderungen am
  316. Bufferinhalt gehen verloren !
  317. Das auszulesende Bauteil sollte ZUERST im Typ-
  318. Menu eingestellt, DANN in den Nullkraftsockel des
  319. Gerätes eingesetzt und ZULETZT mittels dieser
  320. Funktion ausgelesen werden.
  321.  
  322. Vergleichen
  323. Damit wird das eingesetzte Bauteil Byte für Byte
  324. mit dem Inhalt des Buffers verglichen; sind beider
  325. Inhalte identisch, ertönt ein OK-PING und die
  326. Meldung 'Puffer identisch !', ansonsten ist ein
  327. BAD-PING zu hören und die Meldung 'Puffer ist
  328. nicht identisch' erscheint. Im letzteren Fall
  329. springt der Cursor an die Buffer-Adresse mit dem
  330. differierenden Inhalt. Der Buffer-Inhalt wird mit
  331. dieser Funktion nicht verändert.
  332.  
  333. Leertest
  334. Es wird getestet, ob alle Bytes des eingesetzten
  335. Bauteils den Wert $ff haben. OK-PING, wenn dem so
  336. ist bzw. BAD-PING, wenn nicht, mit entsprechender
  337. Cursor-Positionierung. (Fehler-)Meldungen 'Bauteil
  338. ist leer' bzw. 'Bauteil ist nicht leer'.
  339.  
  340. Technischer Hinweis: EPROMs gelten als leer, wenn
  341. alle Bits den Wert 1 haben. Das bedeutet, daß nur
  342. Nullen gebrannt werden können. Ein EPROM-Bit, das
  343. auf Null gebrannt wurde, kann nur mittels UV-Licht
  344. wieder auf Eins gebracht (gelöscht) werden. Daher
  345. ist manchmal auch ein überprogrammieren von
  346. bereits programmierten EPROMs möglich; z.B. kann
  347. ein EPROM-Byte $7f (=0111 1111) mit dem Byte $1a
  348. (=0001 1010) überbrannt werden, aber nicht
  349. umgekehrt. Um festzustellen, ob ein Bauteil mit
  350. dem Bufferinhalt überbrannt werden kann, soll die
  351. nachfolgende Funktion benutzt werden:
  352.  
  353. Bit-Test
  354. Zu allen gesetzten Bits des Buffers wird geprüft,
  355. ob die entsprechenden Bits des Bauteils ebenfalls
  356. auf 1 stehen (gelöschter Zustand, siehe Tech-
  357. nischen Hinweis vom vorigen Befehl). In diesem
  358. Fall kann das Bauteil mit dem Bufferinhalt
  359. überbrannt werden, Meldung 'Programmierung
  360. möglich'. Ansonsten springt der Cursor an die
  361. Bufferadresse, dessen Inhalt nicht in die
  362. entsprechende EPROM-Adresse programmiert werden
  363. könnte mit der Meldung 'Programmierung nicht
  364. möglich'; entsprechende PINGs werden ausgegeben.
  365.  
  366. Prüfsumme
  367. Es wird die Langwort-Summe aller Bytes des Buffer-
  368. inhaltes für den eingestellten Bauteiltyp
  369. berechnet und als nicht-vorzeichenbehaftetes
  370. Langwort in hexadezimal ausgegeben.
  371.  
  372. Programmieren
  373. ... Erraten. Hiermit wird der Bufferinhalt in
  374. seiner ganzen Schönheit Byte-für-Byte in das
  375. eingesetzte Bauteil gebrannt. Dazu wird der
  376. jeweils eingestellte Modus benutzt, siehe dort für
  377. nähere Hinweise. Wenn der eingestellte nicht mit
  378. dem eingesetzten Typ übereinstimmt, müssen Sie mit
  379. Zerstörungen rechnen ! Zumindest das eingesetzte
  380. (falsche) Bauteil könnte Schaden nehmen.
  381.  
  382. Bei meinem eigenen Gerät habe ich mehrfach 2764A-
  383. EPROMs versehentlich mit der Einstellung 2764
  384. (also der doppelten Programmierspannung) zu
  385. programmieren versucht. Meistens standen die
  386. korrekten Daten nachher zwar in dem Bauteil, aber
  387. dafür ließ er sich nicht mehr löschen...
  388. Normalerweise ein Fall für den (Sonder-)Müll.
  389.  
  390. Fast-Programmieren
  391. Läuft ab wie beim Programmieren, mit allen
  392. Hinweisen wie oben. Einziger Unterschied: Bytes im
  393. Buffer mit dem Wert $ff werden übersprungen und
  394. nicht programmiert, dadurch ergeben sich je nach
  395. Inhalt des Buffers manchmal erheblich
  396. Zeiteinsparungen (eben abhängig davon, wie viele
  397. $ff der Buffer enthält). Der Grund warum dieser
  398. Modus überhaupt funktioniert: alle Bits eines
  399. EPROMs sind im leeren Zustand gesetzt, also
  400. enthält das EPROM (leer) nur $ff's. Folglich kann
  401. man diese beim Programmieren ruhig auslassen, ohne
  402. Schaden befürchten zu müssen.
  403.  
  404. Diese Funktion sollte nur mit wirklich leeren
  405. EPROMs benutzt werden, sonst können bei einem
  406. nachfolgenden Verify Fehler angezeigt werden,
  407. obwohl die Programmierung eigentlich erfolgreich
  408. war.
  409.  
  410. 2716, 2732, 2732A DÜRFEN NICHT MIT DIESER FUNKTION
  411. GEBRANNT WERDEN !!!!!! Diese Bauteile müssen immer
  412. komplett, vom Anfang bis Ende, im 50ms-Modus
  413. gebrannt werden, ansonsten besteht die Gefahr,
  414. eine unsaubere (nicht vollständige oder
  415. fehlerhafte) Programmierung zu erhalten.
  416.  
  417. Bereich-Programmieren
  418. Hiermit kann jeder beliebige Buffer-Bereich in
  419. jeden beliebigen Bereich des Bauteils gebrannt
  420. werden. Dazu wird der Adreßbereich innerhalb des
  421. Bauteils angegeben (relativ zu Bauteil-Adresse
  422. $0), wobei Anfangs- und Endadresse mitgezählt
  423. werden (Inklusiv-Adressen). Als dritter Parameter
  424. wird die Anfangsadresse im Buffer benötigt, ab der
  425. die Daten in das Bauteil gebrannt werden sollen
  426. (relativ zu Buffer-Adresse $0). Die Länge des
  427. Blocks, der gebrannt werden soll, wird durch den
  428. Bauteil-Adreßbereich bestimmt, und muß voll
  429. innerhalb des Buffers liegen. So wird z.B.
  430. folgender Programmierversuch angemeckert:
  431. Typ 2764, Brennen von EPROM-Adresse $1000 bis
  432. inklusive $1fff, ab Bufferadresse $1001 --> die
  433. Blocklänge ($1000) geht um 1 Byte über die
  434. Buffergrenze hinaus und wird nicht akzeptiert.
  435. Gültige Bufferadressen wären im Bereich von $0 bis
  436. $1000.
  437.  
  438. Übrigens: Bei allen Programmierfunktionen wird ein
  439. Füllbalken am rechten Fensterrand angezeigt, der helfen
  440. soll, die Programmierzeit zu überblicken. Dieser Balken
  441. (kein %$&!-Prop-Gadget!) wird zeilenweise aufgebaut, in
  442. Abhängigkeit von der Größe des zu Programmierenden
  443. Bereichs. Beim 2764 erscheint beispielsweise für
  444. jeweils 37 programmierte Bytes eine weitere Linie des
  445. Balkens.
  446.  
  447.  
  448.  
  449. Puffer-Menü
  450. Neu
  451. Der aktuell eingestellte Bufferbereich wird
  452. gelöscht (d.h. mit $ff initialisiert). Der übrige
  453. Buffer bleibt unberührt. Beispiel: 2764 einstellen
  454. und Bauteil auslesen, 2716 einstellen, diese
  455. Funktion auslösen, wieder 2764 einstellen ... es
  456. sind nur die ersten 2K des jetzigen 8K-Bereichs
  457. leer; die letzten 6K enthalten noch die zuletzt
  458. eingelesenen Daten.
  459.  
  460. Anfang
  461. Setzt den Cursor im eingestellten Modus (HEX oder
  462. ASCII) auf die erste Zeile des Buffers. Die
  463. horizontale Cursorposition bleibt erhalten.
  464.  
  465. Ende
  466. Setzt den Cursor auf die letzte Zeile des Buffers,
  467. abhängig vom eingestellten Typ. Die horizontale
  468. Cursorposition bleibt erhalten.
  469.  
  470. Gehe Adresse
  471. Es erscheint ein Eingabefenster, in das die
  472. Adresse, zu der gesprungen werden soll, eingegeben
  473. werden kann (in hexadezimal). Eine leere Eingabe
  474. (kein Zeichen) wird als Adresse $0 interpretiert.
  475. Adressen außerhalb des gültigen Bereichs werden
  476. entsprechend angemeckert, ebenso ungültige Zeichen
  477. in der Eingabe. Der Cursor wird an der gewünschten
  478. Stelle plaziert.
  479.  
  480. Suchen ASCII
  481. Ein Eingabefenster erscheint, in dem ein
  482. beliebiger ASCII-String eingegeben werden kann.
  483. Dieser wird dann im gesamten Buffer gesucht. Bei
  484. Erfolg wird die entsprechende Zeile des Buffers
  485. als oberste Zeile (soweit möglich) ausgegeben und
  486. der Cursor (im ASCII-Modus) an den Anfang des
  487. Strings gesetzt, sowie eine Meldung ausgegeben, ob
  488. weitergesucht oder abgebrochen werden soll. Bei
  489. Abbruch verbleibt der Cursor an der letzten
  490. Position. Wird der String nicht mehr gefunden,
  491. erscheint eine entsprechende (letzte) Meldung.
  492. Eine leere Eingabe wird ignoriert und die Suche
  493. nicht gestartet.
  494.  
  495. Suchen Bytes
  496. Analog zu 'Suchen ASCII', nur wird die Eingabe
  497. hexadezimal interpretiert und der Cursor springt
  498. bei Erfolg in den HEX-Modus. 
  499.  
  500. Füllen ASCII
  501. Es muß ein Buffer-Bereich angegeben werden (in
  502. hexadezimal, inklusiv gerechnet), der mit dem als
  503. dritten Parameter anzugebenen Daten gefüllt wird.
  504. Überzählige Fülldaten am Ende des Bereichs werden
  505. abgeschnitten; es wird der exakt gewünschte
  506. Bereich gefüllt. Leere Eingaben bei den Adressen
  507. werden als $0 interpretiert, bei leerer Eingabe
  508. des Füll-Strings wird die Aktion nicht ausgeführt.
  509. Die Cursorposition wird nicht verändert.
  510.  
  511. Füllen Bytes
  512. Analog zu 'Füllen ASCII', bis auf die Eingabe von
  513. hexadezimalen Füll-Daten.
  514.  
  515. Kopieren
  516. Der zu kopierende Datenbereich von-bis (inklusiv,
  517. in hexadezimal) ist einzugeben, als dritter
  518. Parameter wird die Zieladresse, zu der die Daten
  519. kopiert werden sollen, erwartet. Leere Eingaben
  520. werden als $0 interpretiert. Überschneidungen sind
  521. erlaubt. Der zu kopierende Block muß vollständig
  522. innerhalb des Buffers landen, sonst wird die
  523. Zieladresse angemeckert ('Zieladresse
  524. fehlerhaft').
  525.  
  526. Hex-Modus
  527. Der Cursor wird in den HEX-Modus gebracht, d.h. in
  528. den hexadezimalen Teil des Displays. Hier können
  529. die Bufferdaten mit den Tasten 0-9,A-F direkt in
  530. hexadezimal verändert werden.
  531.  
  532. Ascii-Modus
  533. Der Cursor wird in den ASCII-Modus gebracht, also
  534. in den 'Klartext'-zeigenden Teil des Displays
  535. (rechtes Drittel). Beliebige Eingaben mit allen
  536. Tasten sind hier möglich und werden jeweils als
  537. einzelnes Zeichen im Buffer abgespeichert. Z.B.
  538. erzeugen die Return- und die Enter-Taste den Code
  539. $0d, alle Buchstabentasten den entsprechenden
  540. ASCII-Code usw. Problem: die Umlaute und das 'ß'
  541. werden aus technischen Gründen nicht korrekt
  542. wiedergegeben, obwohl der im Buffer gespeicherte
  543. Wert korrekt ist. Dies ist KEIN Fehler ! Wird der
  544. Buffer auf Diskette abgespeichert und vom CLI aus
  545. mit dem DOS-Befehl 'type ...' begutachtet, stimmt
  546. alles.
  547.  
  548.  
  549. Status-Menü
  550. Alle im Programm angezeigten Meldungen in diesem Menü
  551. sind die aktuellen Zustände ! D.h. wenn in der ersten
  552. Zeile 'Ping eingeschaltet' steht, wird bei einigen
  553. Funktionen ein erfolgsabhängiges Geräusch zu hören
  554. sein. Entsprechendes gilt für die anderen Menüpunkte.
  555. Es ist kein mehrfachselektieren möglich, d.h. jeder
  556. Menüpunkt muß einzeln 'angefahren' und selektiert
  557. werden, um ihn umzuschalten.
  558.  
  559. Ping ein/ausgeschaltet
  560. Akustische Kontrolle über einige Funktionen des
  561. Programms. Dürfte eigentlich eine große Hilfe
  562. sein, wenn man nicht ständig auf den Bildschirm
  563. starren will und sehnsüchtig das Ende einer
  564. Programmierung erwartet. Beim Neustart des
  565. Programms ist diese Option eingeschaltet.
  566.  
  567. AUTO-Verify aktiv/Kein AUTO-Verify
  568. Wieder eine (vermeintliche) Arbeitserleichterung.
  569. Aktives AUTO-Verify heißt, daß nach jedem
  570. erfolgreichen Programmieren sofort die Verify-
  571. Funktion aufgerufen wird. Bei gleichzeitig
  572. eingeschaltetem PING braucht man jetzt also nur
  573. noch auf zwei Mal OK-PING hintereinander zu
  574. warten, und das Bauteil ist (garantiert ?) korrekt
  575. gebrannt. Auch diese Option ist standardmäßig
  576. eingeschaltet.
  577.  
  578. Programmieren mit/ohne Füllbalken
  579. Der Füllbalken für die Programmierfunktionen am
  580. rechten Bildschirmrand kann hiermit global
  581. an/abgeschaltet werden. Standard ist eingeschaltet
  582. (was sonst ? Sieht schließlich GÖTTLICH aus...)
  583.  
  584.  
  585. Tastaturbelegung
  586. Die Tastaturbelegung für die Cursorpositionierung ist
  587. identisch mit der letzten Programmversion 1.10, also wie
  588. folgt:
  589. Pfeiltasten -Cursor eine Stelle in der
  590. entsprechenden Richtung
  591. weiterbewegen, im Rahmen des
  592. eingestellten Buffers. Autorepeat.
  593. Rollbalken wird erst bei Loslassen
  594. der Pfeiltasten neu positioniert.
  595. CTRL + Pfeiltasten- Cursor ebenfalls eine Stelle
  596. weiterbewegen, aber etwas
  597. schneller. Autorepeat.
  598. Zeilenweises, aber weiches
  599. Scrolling. Rollbalken wird bei
  600. Loslassen der Pfeiltasten neu
  601. positioniert.
  602. SHIFT + Pfeiltasten-Cursor seitenweise auf/ab bewegen
  603. bzw. an Zeilenanfang/ende setzen.
  604. Ebenfalls Autorepeat und
  605. Rollbalken-Setzen wie zuvor.
  606.  
  607. Weitere spezielle Tastatur-Belegungen existieren nicht mehr.
  608.  
  609. ================================================================
  610.  
  611.  
  612. Anhang A:  Kurzbeschreibung des Filerequesters der req.library
  613.  
  614. In der Kopfzeile des Filerequester-Fensters wird die ausgewählte
  615. Funktion angezeigt (Datei-Laden, Datei-Speichern oder Datei-
  616. Löschen), zudem sind die Farben des Fensters von der
  617. Datenrichtung der Funktion abhängig.
  618.  
  619. Im linken, größeren Bereich des Filerequester-Fensters werden die
  620. Dateien aus dem aktuellen Verzeichnis mitsamt Länge angezeigt.
  621. Mit einem Doppelklick auf eine Zeile selektiert man die
  622. entsprechende Datei und verläßt automatisch den Filerequester.
  623. Nach dem ersten Klick wird der Name der Datei in das unterste
  624. Feld 'File' kopiert, wo er von Hand korrigiert werden kann. Das
  625. Feld darüber ('Drawer') gibt den Namen des aktuellen
  626. Verzeichnisses wieder (ist zu Beginn leer, nur wenn man selber
  627. das Verzeichnis wechselt, steht hier etwas).
  628. Mit einem Mausklick auf 'OK' wird die Eingabe quittiert, auf
  629. 'Cancel' wird abgebrochen, und auf 'Get Dir' wird das aktuelle
  630. Verzeichnis neu eingelesen.
  631.  
  632. Der Filerequester zeigt folgendes Verhalten: beim ersten Aufruf
  633. werden alle Dateinamen im aktuellen Verzeichnis gelesen und in
  634. der Reihenfolge des Lesens auch in Echtzeit angezeigt (es kann
  635. noch während des Einlesens ein Filename angeklickt, von Hand
  636. eingegeben und quittiert werden). Wenn das Verzeichnis
  637. vollständig gelesen werden konnte, wird beim nächsten Benutzen
  638. des Filerequesters das Einlesen der Namen übersprungen. Das
  639. Einlesen kann dann mit dem Gadget 'Get Dir' erzwungen werden.
  640. Konnte das aktuelle Verzeichnis beim ersten Mal nicht vollständig
  641. gelesen werden, oder wird danach in dem aktuellen Verzeichnis
  642. eine Datei abgespeichert oder gelöscht, so werden die Dateinamen
  643. bei erneutem Aufruf des Filerequesters auf jeden Fall wieder alle
  644. neu gelesen.
  645. Bei vollständig eingelesenem Verzeichnis wird bei einem Klick auf
  646. den Rollbalken rechts neben dem Dateinamen-Display die Dateiliste
  647. alphabetisch sortiert.
  648.  
  649. Das rechte Display-Feld des Fensters zeigt eine alphabetische
  650. Liste der logischen Geräte und Assignments im System. Damit kann
  651. auf schnellstem Wege durch Doppelklick z.B. ein anderes Laufwerk
  652. für die Datei angewählt und angezeigt werden.
  653.  
  654. Mit dem 'Parent'-Gadget am oberen linken Fensterrand kann man aus
  655. einem Unterverzeichnis einen Schritt zurück machen, in das
  656. Verzeichnis davor. Dieses Gadget wirkt nur, wenn man selber
  657. vorher ein paar Verzeichnisse tiefer gegenagen ist.
  658.  
  659. Mit den 'Hide' und 'Show'-Feldern kann man bestimmte Gruppen von
  660. Dateien explizit ausblenden oder als einzige darstellen. Es
  661. können AMIGA-DOS oder ARP-Wildcards verwendet werden, z.B. unter
  662. 'Hide' "*.info" oder "#?.info" versteckt alle Dateien mit der
  663. Endung .info im linken Display.
  664.  
  665. Wer NOCH MEHR über diesen Filerequester und andere Vorzüge der
  666. req.library wissen will, der sei auf die Programmers
  667. documentation verwiesen (Fish 419, wie schon mehrfach erwähnt).
  668.  
  669.  
  670. Bleibt nur noch, viel Spaß und Erfolg mit der neuen Junior
  671. Prommer Software Version 2.0 zu wünschen !
  672.  
  673. Michael Barth, am 22./23. Februar 1991
  674.